home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Hyper / Me-Mz / MiBalloonoid 1.0.cpt / MiBalloonoid 1.0 / MiBalloonoid / stack_-1.xml < prev    next >
Extensible Markup Language  |  1991-05-06  |  11KB  |  20 lines

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
  3. <stack>
  4.     <name>in</name>
  5.     <id>-1</id>
  6.     <cardCount>1</cardCount>
  7.     <cardID>2688</cardID>
  8.     <listID>2080</listID>
  9.     <cantModify><false /></cantModify>
  10.     <cantDelete><false /></cantDelete>
  11.     <cantAbort><true /></cantAbort>
  12.     <cardSize>
  13.         <width>512</width>
  14.         <height>342</height>
  15.     </cardSize>
  16.     <script>--=====================================================================----                            MiBalloonoid Demo                        ----                            Copyright ¬© 1991                         ----                            by James K. Miles                        ----                           ALL RIGHTS RESERVED                       ----                                                                     ----  All scripts, XCMDs and XFCNs in this stack are copyright 1991      ----  by James K. Miles.  They cannot be copied or used in other stacks  ----  without persmission.                                               ----                                                                     ----=====================================================================----------------------------------------------------------------------------------------------------------------------------------------------                    GLOBAL STUFF------------------------------------------------------------------------------------------------------------------------------------------on doNoHelp-- there's no help for an item, hide the balloonglobal helpTarget, balloonsOnput empty into helpTargetset the visible of window "Balloonoid" to false-- the following line can be used to display a general "no help" message-- set the balloonmsg of window "Balloonoid" to "TEXTNone/Help"MiSetCursor "PoppedBalloon"end doNoHelpon mouseenter-- the mouse entered a field or button, get some helpglobal helpTarget, balloonsOnif there is a window "Balloonoid" thenset the visible of window "Balloonoid" to falseif balloonsOn = true thenput the short name of the target into helpTargetput the rect of the target into tRectput false into donerepeat until done = true--  must set the rect FIRST or it will return a sequence error in System 7set the balloonrect of window "Balloonoid" to tRect-- note that our help messages must end with "/HELP" and they are all of-- type TEXT (except for a special logo demo)if offset("PICT", helpTarget) = 0 thenput "TEXT" into hTypeelseput "PICT" into hTypeend ifset the balloonmsg of window "Balloonoid" to hType & helpTarget & "/Help"put the result into balloonErrput true into doneif balloonErr <> 0 then-- if the result is mouse movement error, tell the user to slow downif balloonErr = -853 thenMiSetCursor "Balloon"put false into done  -- try it againwait 5MiSetCursor "PoppedBalloon"elsedoNoHelpend ifelse  -- show itMiSetCursor "Balloon"setBalloonoidLoc tRectset the visible of window "Balloonoid" to trueend ifend repeatend ifend ifend mouseenteron setBalloonoidLoc tRect-- set the location of the balloon for pre-System 7--  This will overlay the window a few pixels within the help area--  positioned 1/3rd off the left-hand side.  It also checks to make--  sure the entire help balloon is on the screen in case we're on--  a small displayadd 2 to item 2 of tRectsubtract 4 from item 4 of tRectput the balloonrect of window "Balloonoid" into hRectput item 4 of hRect - item 2 of hRect into hHeightput item 3 of hRect - item 1 of hRect into hWidthput the rect of this card into cRectadd 20 to item 2 of cRect  -- account for menubarput trunc((item 3 of tRect - item 1 of tRect) / 2) into fWidthif item 4 of tRect + hHeight < item 4 of cRect thenput item 4 of tRect into item 2 of hRectelse if item 2 of tRect - hHeight > item 2 of cRect thenput item 2 of tRect - hHeight into item 2 of hRectelseput item 2 of tRect into item 2 of hRectend ifput item 1 of tRect + trunc(fWidth / 3) into item 1 of hRectput item 1 of tRect + trunc(fWidth / 3) + hWidth into item 3 of hRectif item 3 of hRect > item 3 of cRect thenput item 3 of cRect into item 3 of hRectput item 3 of cRect - hWidth into item 1 of hRectend ifif item 1 of hRect < item 1 of cRect thenput item 1 of cRect into item 1 of hRectput item 1 of cRect + hWidth into item 3 of hRectend ifset the loc of window "Balloonoid" to item 1 to 2 of hRectend setBalloonoidLocon movewindow-- if the user moves the window, the balloon will be positioned wrong-- so hide itglobal balloonsOnif there is a window "Balloonoid" and balloonsOn = true thenset the visible of window "Balloonoid" to falseend ifend movewindowon idle-- if the mouse goes outside the card area, hide the balloon in case system 7-- has to show one for something else (not really necessary).  It also makes-- sure that the balloon pointer stays active in case HC tries to change it-- to something elseglobal helpTarget, balloonsOn, didCompactAlertput hasMiRealBalloons() into bInfoif there is a window "Balloonoid" thenif balloonsOn = true and the mouseloc is within the rect of this card then-- check to see if the user turned OFF the balloons from the Help <?> menu.if item 1 of bInfo = true and item 2 of bInfo = false thendoBalloon -- turn them off!else if helpTarget <> empty thenMiSetCursor "Balloon"elseMiSetCursor "PoppedBalloon"put empty into helpTargetset the visible of window "Balloonoid" to falseend ifend ifelse if item 1 of bInfo = true and item 2 of bInfo = true then-- check to see if the user turned ON the balloons from the Help <?> menu.put false into balloonsOndoBalloon -- turn them on!end if-- check the free space and don't compact unless there is enough disk-- space and the balloons are offif didCompactAlert <> true and the freesize of this stack > 50000 thenput the size of this stack / 1024 - the diskspace / 1024 into howMuchbeepif howMuch > 1 thenanswer "Please free up some disk space so this stack can be compacted.  " &¬¨"You need an additional " & trunc(howMuch) & "K of free disk space."put true into didCompactAlertelse if balloonsOn = true thenput true into didCompactAlertanswer "Please turn off the help balloons so the stack can be compacted."elseput empty into didCompactAlertset cursor to watchPut "Compacting stack..."domenu "Compact Stack"put emptyend ifend ifend idleon mouseLeave-- mouse has left an area, hide any balloonglobal helpTarget, balloonsOnif balloonsOn = true thenif helpTarget <> empty thendoNoHelpend ifend ifend mouseLeaveon hideBalloons what-- turns off MiBalloonoidglobal helpTarget, balloonsOnif balloonsOn = true thenput empty into helpTargetif what <> empty and there is a window "Balloonoid" thenclose window "Balloonoid"end ifend ifend hideballoons--------------------------------------------------------------------------------------------------------------------------------------------                    STACK STUFF------------------------------------------------------------------------------------------------------------------------------------------on openstackglobal balloonsOn, menunameput empty into menunameif balloonsOn = empty thenput false into balloonsOnend iflock screenpass openstackend openstackon closestack-- odios amigosglobal helpTarget, balloonsOn, menuname,didCompactAlertlock screenhideballoons true  -- make sure they are off!put empty into balloonsOnput empty into menunameput empty into didCompactAlertreset menubarpass closestackend closestackon suspendStack-- I'll be back!lock screenhideballoons true  -- make sure they are off!reset menubarpass suspendStackend suspendStackon resumeStack-- They're here!lock screensetupMiMenupass resumeStackend resumeStack--------------------------------------------------------------------------------------------------------------------------------------------                    MENU STUFF------------------------------------------------------------------------------------------------------------------------------------------on doNothing-- do nothing!end doNothingon balloonsclosed-- balloonoid window closed, a message sent from MiBalloonoidglobal balloonsOn, didCompactAlert, menunameif balloonsOn = true thenhideballoonsput false into balloonsOnput "Show Balloons" into menuitem 1 of menu menuname with menumsg "doBalloon"put false into didCompactAlertend ifend balloonsclosedon doBalloon-- handle balloon helpglobal helpTarget, balloonsOn, didCompactAlert, menunameset the cursor to watchif balloonsOn = true thenhideballoons trueput false into balloonsOnput false into didCompactAlertput "Show Balloons" into menuitem 1 of menu menuname with menumsg "doBalloon"elseMiBalloonoid "Balloonoid", the topleft of bg btn "HelpLoc"if the result = 0 then-- this is to fix a little bug in HC 2.0 SetInterruptCode() callback.set FixStupidHCBug of window "Balloonoid" to trueput "Hide Balloons" into menuitem 1 of menu menuname with menumsg "doBalloon"MiSetCursor "Balloon"put true into balloonsOnput empty into helpTargetelsebeepend ifend ifend doBalloonon doHelp what-- lookup the help message for the selected menu itemglobal helpTarget, balloonsOnput the shiftkey into sKeyif balloonsOn = true and there is a window "Balloonoid" thenput empty into helpTargetset the visible of window "Balloonoid" to falseset the balloonmsg of window "Balloonoid" to "TEXT" & whatput the result into balloonErrif balloonErr <> 0 thenset the balloonmsg of window "Balloonoid" to "TEXTNone"end if-- Help Loc is a special button to position the default help field and-- should be located near the top left-hand side of the cardset the loc of window "Balloonoid" to the topleft of bg btn "HelpLoc"set the visible of window "Balloonoid" to trueif sKey = down and item 1 of hasMiRealBalloons() = false then-- if the shift key is down, let the user read the message without having-- to execute the menu option.set cursor to watchrepeat until the shiftkey <> downend repeatif balloonErr <> 0 thenMiSetCursor "Balloon"end ifexit to hypercardend ifend ifend doHelpon doMenu what--  Any open XCMD's must be closed before compacting!global balloonsOnif balloonsOn = true thendoHelp whatend ifif offset("Compact", what) > 0 and balloonsOn = true thenanswer "Sorry, the help system must be turned off before compacting the stack."exit domenuend ifpass doMenuend doMenuon setupMiMenu-- setup menuglobal menunameput "MiBalloonoid" into menuNameif there is not a menu menuName thenset cursor to watchreset menubarCreate menu menuNameif there is not a window "Balloonoid" thenput "Show Balloons" into hideItemelseput "Hide Balloons" into hideItemend ifput hideItem & ",-,Do This,Do That,Disabled Item" after menu menuName with¬¨menuMessages "doBalloon,,doNothing,doNothing,doNothing"disable menuitem 5 of menu menuname  -- demonstrate disabled balloon msgend ifend setupMiMenu</script>
  17.     <background id="4346" file="background_4346.xml" name="MiBalloonoidDEMO" />
  18.     <card id="2688" file="card_2688.xml" marked="false" name="" owner="4346" />
  19. </stack>
  20.